importPackage(Packages.de.elo.ix.client);
//@include lib_Class.js
//@include lib_sol.common.Template.js
//@include lib_sol.common.ix.RfUtils.js
//@include lib_sol.common.ix.FunctionBase.js
var logger = sol.create("sol.Logger", { scope: "sol.dev.ix.functions.ResolveTemplate" });
/**
* Resolve a Template String with provided context data
*
* # Using templates from a string
*
* {
* source: 'Hello {{name}}.',
* context: {
* name: "Max"
* }
* }
*
*
* @author ELO Digital Office GmbH
* @version 1.0
*
* @eloix
* @requires sol.common.Template
*
* @requires sol.common.ix.FunctionBase
*
*/
sol.define("sol.dev.ix.functions.ResolveTemplate", {
extend: "sol.common.ix.FunctionBase",
requiredConfig: ["source", "context"],
/**
* @cfg {String} source (required)
*/
/**
* @cfg {Object[]} context(required)
*
*/
/**
*/
process: function () {
var me = this, template, result;
template = sol.create("sol.common.Template", {
source: me.source
});
result = template.apply(me.context);
return result;
}
});
/**
* @member sol.dev.ix.functions.ResolveTemplate
* @method RF_sol_function_ResolveTemplate
* @static
* @inheritdoc sol.common.ix.FunctionBase#RF_FunctionName
*/
function RF_sol_dev_function_ResolveTemplate(ec, args) {
var params, module;
params = sol.common.ix.RfUtils.parseAndCheckParams(ec, arguments.callee.name, args, "source", "context");
module = sol.create("sol.dev.ix.functions.ResolveTemplate", params);
return JSON.stringify(module.process());
}